import { QueryKey, useMutation, useQuery } from "react-query";
import { cleanObject } from ".";
import { Epic } from "../types/epic";
import { useHttp } from "./http";
import { useAddConfig, useDeleteConfig } from "./use-optimistic-options";

export const useEpics = (param?: Partial<Epic>) => {
  const client = useHttp();
  return useQuery<Epic[]>(["epics", param], () =>
    client("epics", { data: cleanObject(param ?? {}) })
  );
};
export const useAddEpic = (queryKey: QueryKey) => {
  const client = useHttp();
  return useMutation((params: Partial<Epic>) => {
    return client(`epics`, { data: params, method: "POST" });
  }, useAddConfig(queryKey));
};
export const useDeleteEpic = (queryKey: QueryKey) => {
  const client = useHttp();
  return useMutation(
    ({ id }: { id: number }) => client(`epics/${id}`, { method: "DELETE" }),
    useDeleteConfig(queryKey)
  );
};
